<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>总结</title>
</head>
<body>
<p>
    <h1>1.6. 总结（Summary）</h1>
    <hr>
    let 和 const 块级绑定给 JavaScript 引入了词法作用域的概念。这些声明不会被提升且仅存在于声明它们的代码块中。<br/>
    它们的行为和其它语言更为相似且减少了意外错误的发生，因为变量会在原处被声明。<br/>
    作为副作用之一，你不能在声明之前就使用它们，即使是 typeof 这种安全操作也不被允许。<br/>
    暂存性死区（temproal dead zone, TDZ）中绑定的存在会导致在声明位置之前的访问以失败告终。<br/>

    在大多数情况下，let 和 const 的表现和 var 很相似，但在循环中并不是这样。<br/>
    对于 let 和 const 来讲，每次迭代的开始都会创建新的绑定，意味着循环内部创建的函数可以在迭代时访问到当前的索引值，而不是在整个循环结束之后（即 var 的表现形式）。<br/>
    在 for 中使用 let 声明也同样适用，但 const 声明则会抛出错误。<br/>

    目前关于块级绑定的最佳实践是使用 const 作为默认的声明方式，当变量需要更改时切换为 let 声明。保证代码中最基本的不可变性能防止错误的发生。<br/>
</p>

</body>
</html>